
package com.yuke.cloud.service.uac.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yuke.cloud.service.uac.entity.AccRole;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;
import java.util.Set;


/**
 * The class User vo.
 *
 * @author
 */
@Data
public class UserVo {

	private static final long serialVersionUID = -5489240986004922469L;

	private Long userId;

	/**
	 * 登录名
	 */
	private String loginName;

	/**
	 * 工号
	 */
	private String employeeCode;

	/**
	 * 姓名
	 */
	private String userName;

	/**
	 * 用户昵称
	 */
	private String nickname;

	/**
	 * 手机号
	 */
	private String mobile;

	/**
	 * 邮箱，一般也应具唯一性，需要通过应用来判断唯一性
	 */
	private String email;

	/**
	 * 用户头像的URI路径
	 */
	private String headImgUri;

	/**
	 * 状态
	 */
	private Boolean isEnable;

	/**
	 * 用户来源
	 */
	private String userSource;

	/**
	 * 用户类型，采用二进制的与、或操作，0：普通用户；1（01）：商家用户；2（010）：伙伴（供应商）；4（0100）：员工用户；
	 */
	private Byte type;

	/**
	 * 最后登录IP地址
	 */
	private String lastLoginIp;

	/**
	 * 最后登录时间
	 */
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date lastLoginTime;

	/**
	 * 组织名称
	 */
	private String groupName;

	/**
	 * 用户角色信息
	 */
	private Set<AccRole> roles;

	/**
	 * 用户拥有的菜单权限和按钮权限
	 */
	private List<MenuVo> authTree;
}
